home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / dllib.arc / SMLIBDL.DOC < prev    next >
Text File  |  1987-03-30  |  28KB  |  991 lines

  1.          
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.                             ==========================
  15.                             =   STEVE'S C LIBRARY    =
  16.                             =      for Datalight     =
  17.                             =        - by -          =
  18.                             =   Steven E. Margison   =
  19.                             ==========================
  20.  
  21.  
  22.                 Functions and Documentation Copyright 1986 & 1987
  23.                    by Steven E. Margison -- All Rights Reserved
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.                   Steve's C Library for Datalight         Page 1         
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.          
  68.  
  69.  
  70.  
  71.  
  72.                     Steve's C Function Library for Datalight C
  73.  
  74.  
  75.          I. INTRODUCTION
  76.                  The heart  of  the  C  language  is  its  library.  Each
  77.          compiler  has  its  own  library of functions, which is complete
  78.          only to the degree that the compiler author wishes to  make  it.
  79.          The  Datalight  C  Compiler  is  an  excellent product which has
  80.          gotten rave reviews in computer magazines. (I have both  Lattice
  81.          3.1  and Datalight available to me and I prefer the Datalight by
  82.          far.) The greatest criticism which can be leveled  at  Datalight
  83.          is  the  size  of  its  library.  It  has  all  the  usual basic
  84.          functions, plus some nice unique features. But it still can  use
  85.          some help. Enter Steve's Library! At over 70 functions (for now)
  86.          my  library  greatly enhances program development with Datalight
  87.          C. Don't have Datalight? Well, most C  compilers  use  the  same
  88.          calling conventions and it is highly probable that the functions
  89.          of  this library may be used. If you have the source, be certain
  90.          by re-compiling the C modules. Assembly  language  modules  will
  91.          probably have to be altered to work with other compilers.
  92.  
  93.  
  94.  
  95.  
  96.          II. THE DOCUMENTATION
  97.                  The  documentation  for  the  library  is contained in a
  98.          number  of .DOC  files,  which  describe  each  function.   When
  99.          printed,  these  pages  may  be  placed in a standard three-ring
  100.          binder. A utility program, PMAN.COM is provided to generate  the
  101.          entire  set  of documents. PMAN requires the file LISTALL, which
  102.          may be edited to eliminate printing of certain files if desired.
  103.          (PMAN is copyrighted, but placed in the public domain.)
  104.                  To print the DOC files, you must be in a  directory  (or
  105.          on  a  floppy)  containing PMAN, LISTALL, and all the DOC files.
  106.          Just type "PMAN" at your system prompt and  the  files  will  be
  107.          printed to PRN:.
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.                   Steve's C Library for Datalight         Page 2         
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.          
  134.  
  135.  
  136.          III. INSTALLATION
  137.  
  138.          Steve's Library is distributed as four library  files  for  each
  139.          type  of  memory  model. (Only the full registration with source
  140.          has all four libraries.) The filenames are:
  141.               SMDLS.LIB       Small Memory Model
  142.               SMDLD.LIB       Large Data Model
  143.               SMDLP.LIB       Large Code Model
  144.               SMDLL.LIB       Large Code and Data Model
  145.          For the remainder of this manual the libraries will be  referred
  146.          to as SMDLx.LIB.
  147.          A  typical hard disk installation of Datalight will consist of a
  148.          directory named  \DC  in  which  will  be  found  the  compiler,
  149.          Datalight  libraries,  and  Datalight  header  files.  SMDLx.LIB
  150.          should be copied into this directory as well, or  into  whatever
  151.          directory the Datalight libraries have been installed.
  152.          Steve's  Library  also  includes several header files which list
  153.          "define"s for many useful items. These  header  files  are  also
  154.          required  to re-compile the source for the libraries. The header
  155.          files should be copied into the \DC directory,  or  in  whatever
  156.          other  directory  contains  stdio.h, dos.h, and the other header
  157.          files. If you have purchased the source files and wish  to  have
  158.          them  on  hard  disk, make a new subdirectory under the \DC main
  159.          directory called SM (C:\DC\SM) and copy all source files to that
  160.          directory.
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.                   Steve's C Library for Datalight         Page 3         
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.          
  200.  
  201.  
  202.          IV. LINKING
  203.                  The  SMDLx.LIB  library  must  be  linked with any other
  204.          libraries whenever a function is  used  in  your  program.  Some
  205.          programs  may  not  use  SMDLx.LIB  functions, and therefore the
  206.          linking of the library may  be  eliminated  to  save  time.  The
  207.          Datalight driver (DLC) command line would look like this:
  208.                  DLC MYPROGRAM \DC\SMDLS.LIB
  209.          Naturally,  if  your  directory  structure  is not the standard,
  210.          specify the paths as needed. In  addition,  if  you  have  other
  211.          third party libraries, be sure to include them after SMDLx.LIB.
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.                   Steve's C Library for Datalight         Page 4         
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.          
  266.  
  267.  
  268.          V. INTERRUPT HANDLER FUNCTIONS
  269.                  A special feature of  Steve's  Library  is  the  various
  270.          interrupt handler functions. These are:
  271.                ticker
  272.                ctlbrk
  273.                criterr
  274.          These  functions  provide  the  programmer  with  the ability to
  275.          install  a  special  routine  to  intercept  one  of   the   DOS
  276.          interrupts.  ctlbrk()  installs  a  user-defined  routine  to be
  277.          executed whenever a control-break  is  typed  on  the  keyboard.
  278.          criterr()  traps  the  DOS  critical error handler (the one that
  279.          says Abort, Retry, etc.) and allows the programmer to substitute
  280.          his own  handler.  ticker()  is  not  really  a  user  definable
  281.          handler,  but  a  pre-built  handler  which  allows  the user to
  282.          perform operations relative to the  system's  clock.  A  special
  283.          variable  may  be  loaded  with  a  value  and  then  tested  at
  284.          intervals. When the variable has hit zero, a specific amount  of
  285.          time  has passed. The variable counts 18.2 times per second, and
  286.          is installed on INT 1CH.
  287.          The usage of these interrupt handlers is  slightly  complex  and
  288.          interactive.  For  example,  if  you  use  ticker() you must use
  289.          ctlbrk() and you may have to use criterr().  It  has  been  said
  290.          that  a picture is worth a thousand words. Well, to me, a source
  291.          file is worth a whole chapter of tutorial. Therefore,  refer  to
  292.          TESTINTS.C,  which is supplied with all distributions of Steve's
  293.          Library, to see a heavily commented source code file which  uses
  294.          these  interrupts. This program may be compiled and run to watch
  295.          the result.
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.                   Steve's C Library for Datalight         Page 5         
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.          
  332.  
  333.  
  334.          VI. THE UTILITIES
  335.                  Beginning with Release 1.20 of my library, I am shipping
  336.          the  source  code  for several utiltiies I have written. Nothing
  337.          earth shaking here, just some convenient programs to make life a
  338.          little easier. All  the  programs  use  several  functions  from
  339.          Steve's  Library,  and  can serve as an example of proper usage.
  340.          Here is a short description of each utility:
  341.  
  342.                                       INPATH
  343.  
  344.                  This utility searches for an EXECUTABLE program  in  the
  345.          current  path.  Typing INPATH at the DOS prompt will display the
  346.          version number and a short usage message. To use, type:
  347.  
  348.                inpath <filename>
  349.  
  350.          where filename is the basename portion of the executable file to
  351.          find. Note that  an  extension  can  be  specified,  but  it  is
  352.          ignored.  INPATH  will  first  look  for the file in the current
  353.          directory, and then look in the PATH environment variable (if it
  354.          is present) in the order specified. For each  directory,  INPATH
  355.          first tries to locate a .COM file, then a .EXE file, then a .BAT
  356.          file,  since  that is the order in which DOS searches for files.
  357.          On the first  match,  INPATH  reports  the  directory  and  full
  358.          filename  of the program and then exits. If none are found, that
  359.          fact is reported.
  360.  
  361.          INPATH demonstrates the use of newext() and error().
  362.  
  363.  
  364.                                         TC
  365.  
  366.                  This is a quick Text  Compare  program  to  compare  two
  367.          ASCII  files.  Typing  TC  at  the  DOS  prompt will display the
  368.          version number and a short usage message. To use, type:
  369.  
  370.                tc file1 file2
  371.  
  372.          where file1 and file2 are the two files to compare. If the files
  373.          are identical, no more  messages  will  appear.  Otherwise,  the
  374.          program  will  report  any  lines  which  are different with the
  375.          filename, line number, and a printout of the actual line. If one
  376.          file ends before the  other,  the  program  reports  which  file
  377.          terminated first.
  378.  
  379.          TC demonstrates the use of error() and cant().
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.                   Steve's C Library for Datalight         Page 6         
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.          
  398.  
  399.  
  400.                                         WC
  401.  
  402.                  WC counts words, lines, characters, and checksums one or
  403.          more files. Typing WC at the DOS prompt will display the version
  404.          number and a short usage message. To use, type:
  405.  
  406.                 wc filename [-wcls]
  407.  
  408.          where filename is the name of the file  to  act  upon.  With  no
  409.          options, the program will report words, characters, lines, and a
  410.          checksum,  which  is  a  simple binary addition of all character
  411.          values. No, it ain't a CRC, but it is a quick check to see if it
  412.          the same as another file under the same name. The options [wcls]
  413.          tell the program to report ONLY the items specified:
  414.  
  415.               -w     report only words
  416.               -l     report only lines
  417.               -c     report only characters
  418.               -s     report only checksum
  419.  
  420.          Note that giving all options is the same as giving no options.
  421.  
  422.          Since words, lines, and characters are meaningless in a non-text
  423.          file, the program examines the filename extension  to  determine
  424.          if  the  file  is  a  binary  or text file. This isn't a perfect
  425.          method, but it is good enough. If the file  extension  is  .COM,
  426.          .EXE, .OBJ, .REL, .PFS, .LIB, or .BIN, then only the checksum is
  427.          reported,  overriding  all  other  options. The program supports
  428.          wildcards in the filename, as well as drives and directories.
  429.  
  430.          WC demonstrates the use of exttyp(), cant(),  and  the  wildcard
  431.          _main object file by Datalight.
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.                   Steve's C Library for Datalight         Page 7         
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.          
  464.  
  465.  
  466.                                       OKISET
  467.  
  468.                  This  program  is  used  to  set  the  printing  options
  469.          available  on  an Okidata ML84 (with IBM Plug 'n' Play), or most
  470.          other IBM compatible printers. It may be easily  customized  for
  471.          other  printers.  This  is  a  menu  driven program requiring no
  472.          options. Just execute it and follow the directions!
  473.  
  474.  
  475.               F1    PITCH
  476.               Use the SPACE key to toggle between  normal  (10  cpi)
  477.               and  condensed  (17.5 cpi) pitch. Press RETURN to make
  478.               the selection.
  479.  
  480.               F2    STYLE Use the SPACE key to toggle between  draft
  481.               and letter quality style, and press RETURN to select.
  482.  
  483.               F3    LQ  SPACING  Enter  1  or  2 digits in the range
  484.               00-11 to select letter quality  spacing.  ESCape  will
  485.               abort  this  entry,  BACKSPACE will allow you to start
  486.               the entry over, and RETURN selects the entered  value.
  487.               This selection assumes letter quality mode, and forces
  488.               the style to letter quality, and the pitch to 10 cpi.
  489.  
  490.               F4    LINES  PER PAGE Enter 1 or 2 digits in the range
  491.               01-99 to set  the  page  length  in  lines  per  page.
  492.               ESCape, BACKSPACE, and RETURN operate as for F3.
  493.  
  494.               F5    LINE  SPACING  Use SPACE key to toggle between 6
  495.               LPI and 8 LPI spacing, and press RETURN to select.
  496.  
  497.               F7    OUTPUT CHANNEL Use SPACE  key  to  step  through
  498.               output  channels  PRN, LPT1, and LPT2. Press RETURN to
  499.               select.
  500.  
  501.               F9    NORMAL OPTIONS This key sets all  other  options
  502.               as  follows:      pitch  >  10  CPI      style > Draft
  503.                   lines > 66     space > 6 LPI     output > PRN
  504.  
  505.               F10    SEND CONTROL CODES and EXIT  No  control  codes
  506.               are sent until this key is pressed. Only control codes
  507.               which  have  been  selected  are  sent.  If  the pitch
  508.               selection remains blank in the menu, for example,  the
  509.               pitch  control code will not be sent. This allows only
  510.               some options to  be  changed  without  disturbing  the
  511.               existing printer configuration.
  512.          Letter  quality  and  condensed  modes  cannot  be  mixed on the
  513.          printer. Therefore, if a conflicting selection is made, the last
  514.          entry will force correct options.
  515.  
  516.          OKISET will present various beeps for  invalid  keystrokes,  and
  517.          warning messages where appropriate.
  518.  
  519.  
  520.                   Steve's C Library for Datalight         Page 8         
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.          
  530.  
  531.  
  532.  
  533.          OKISET  will  demonstrate  cls(),  mkbox(),  d_say(),  getkey(),
  534.          d_pos(),  and  show  how  to  manage  a  non-scrolling  program.
  535.          Programming idea: re-write this program using the  direct  video
  536.          access routines.
  537.  
  538.  
  539.                                        GTOD
  540.  
  541.                  This  utility  will  report  the current system time and
  542.          date in a variety of  formats.  GTOD  may  be  invoked  with  or
  543.          without options. Options may be preceeded by dash, fraction bar,
  544.          or nothing at all.
  545.  
  546.                 gtod <options>
  547.  
  548.               -d     report only date
  549.               -t     report only time
  550.               -e     report date in Eurpoean format (DD/MM/YY)
  551.               -s     report seconds, if time reporting enabled
  552.               -r     reverse reporting order, with time first and date second
  553.               -l     spell out month in long format
  554.               -n     if option -l, then add name of weekday
  555.               -m     report time in 24 hour (military) format
  556.               -v     report version number
  557.               -?     usage message and exit
  558.               no options defaults to -dt
  559.          Output may be redirected to a file or another device, except for
  560.          error messages.
  561.  
  562.          GTOD  demonstrates  the  rather  obscure  Datalight system clock
  563.          interface, as well as error(), monthis(), wkdayname(), i_dstr(),
  564.          and weekday(). Program idea: allow calculation  for  other  time
  565.          zones.
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.                   Steve's C Library for Datalight         Page 9         
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.          
  596.  
  597.  
  598.  
  599.  
  600.                                        DUMP
  601.  
  602.                  (Oh! No! Not aNOTHer file dump utility!) Well, yes,  and
  603.          I  apologize  all  to  h*ll.  However, this one started out as a
  604.          utility supplied with the Datalight compiler, which I hacked  to
  605.          death.  First,  it  will be in **COLOR** if it senses a CGA card
  606.          installed, and will use blinks and highlights if a mono card  is
  607.          sensed.  Second,  it  fixes  a  minor  bug or two in Datalight's
  608.          version.  Third,  and  here  comes  the  unique  part,  it  will
  609.          highlight  any  selected  byte  whenever  it is found! (Well, at
  610.          least I think it's handy.) Fourth, it displays only 20 lines  at
  611.          a  time and waits for a keypress to continue. Invoke the program
  612.          as follows:
  613.  
  614.                 dump filename <offset> <byte>
  615.  
  616.          where filename is the file to dump, offset  is  the  hex  offset
  617.          value  in  which to index into the file before dumping (defaults
  618.          is 0000), and byte is the hex value to highlight (default is  no
  619.          highlight).  The  parameters MUST be in the order specified, and
  620.          the offset must be supplied (as a  place  holder)  if  the  byte
  621.          option is desired.
  622.  
  623.          DUMP  demonstrates  the  use of getkey(), stuff(), error(), plus
  624.          many of the disp* functions of this library and  Datalight,  and
  625.          the use of color attributes. Programming idea: there are several
  626.          ways to increase the speed of the program. I haven't implemented
  627.          them  so  that  you  can have the fun(!!) of doing it. Hint: the
  628.          overhead in printf() is horrendous.
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.                  Steve's C Library for Datalight         Page 10         
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.          
  662.  
  663.  
  664.          VII. ON BUFFERING STDOUT
  665.                  Beginning  with  Version  3.*  of Datalight, the authors
  666.          have decided to buffer the output to stdout.  Well,  this  ain't
  667.          quite  right,  thinks  me.  The  result is that any data sent to
  668.          stdout (usually the console) is held up until (a) the buffer  is
  669.          full,  (b) a newline character is sent, or (c) fflush(stdout) is
  670.          called. This is a royal pain, but it can be  fixed.  The  module
  671.          IOB.C  can be modified to set _IONBF in the stdout definition. I
  672.          have included a source module, IOBNBF.C, with this modification.
  673.          It can be renamed to IOB.C and recompiled  if  desired.  Use  an
  674.          object  module  librarian  program  to replace the module in the
  675.          Datalight libraries. Or, simply leave it as an OBJ file and link
  676.          it into your programs. Since the linker will see it  before  the
  677.          same  module  in the library, it will then take precedence. This
  678.          may actually be better, since it gives you the  ability  to  use
  679.          either   buffered  or  unbuffered  stdout  output.  All  of  the
  680.          utilities  I  supply  with  my  library  are  designed  to   use
  681.          unbuffered output.
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.                   Steve's C Library for Datalight         Page 11        
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.          
  728.  
  729.  
  730.          VIII. SHAREWARE AND COMMERCIAL LICENSING
  731.                  By now, the shareware concept should be familiar  to  PC
  732.          users.   In   a   nutshell,  ShareWare  is  "try-before-you-buy"
  733.          software, reasonably  priced  and  user-supported.  This  simply
  734.          means  that  you can get ShareWare software for free from anyone
  735.          who has a copy, or often from bulletin board systems. If you use
  736.          and like the program, then the  author  requests  a  payment  to
  737.          support  further  software  development. By registering you will
  738.          often also receive notice of available upgrades or  supplemental
  739.          programs.  Of  course, payment under ShareWare is voluntary, but
  740.          if the program is useful and the price is right, why not pay the
  741.          dues and provide the incentive and reward necessary to  continue
  742.          development of new and better software?
  743.                  Steve's Library is shareware. If you like it and use it,
  744.          please  register  your copy on the registration form enclosed at
  745.          the end of this manual. You will be placed on a mailing list for
  746.          future upgrades, and receive the most recent distribution  disk.
  747.          For a slightly higher charge, you may elect to obtain the source
  748.          code  for  all  functions, and the D, L, and P libraries. Please
  749.          note that the extra  libraries  and  the  source  code  are  NOT
  750.          SHAREWARE,   and   should   not   be   distributed.   Only   the
  751.          documentation, header files, and  Small  model  library  may  be
  752.          passed on under the shareware concept.
  753.                  Online  help  is available through CompuServe, either by
  754.          using EasyPlex or a message in IBMSW or IBMHW forums. Sorry, but
  755.          online help is available ONLY to registered users.
  756.                  Help is also available by mail. I will try to answer all
  757.          letters within 48 hours. Non-registered  users  must  include  a
  758.          SASE for a reply. The degree of help available to non-registered
  759.          users is purely discretionary.
  760.                  Steve's Library may be used in a commercial environment,
  761.          with  no  royalties  required  to  include  functions  in  other
  762.          programs offered for sale. However, the  library,  source  code,
  763.          and  all  related  documentation  may  not  be  sold  under  any
  764.          circumstances without my prior approval. Public Domain/Shareware
  765.          distributors and Users Groups  may  charge  a  nominal  fee  for
  766.          copying  and  distributing  those files which are shareware, and
  767.          Bulletin Board Systems may  likewise  carry  the  files.  Please
  768.          contact  me  for  a  complimentary  copy  to insure that you are
  769.          offering the most recent and complete release. The  source  code
  770.          may NOT be offered for sale or trade by other than myself.
  771.                  Steve's   Library  and  its  documentation  may  not  be
  772.          transferred nor exchanged in any modified form.  If  you  really
  773.          want  to "hack" the functions or the documentation, by all means
  774.          do so; but don't give the  hacked  version  to  anyone  else.  I
  775.          cannot  be  expected  to help others use these functions if they
  776.          are not the same as distributed. Under no circumstances may  the
  777.          copyright  notices  be  altered or removed from the functions or
  778.          documentation.
  779.  
  780.  
  781.  
  782.  
  783.  
  784.                  Steve's C Library for Datalight         Page 12         
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.          
  794.  
  795.  
  796.          VII. WARRANTY
  797.                  Oh,  this  shouldn't  be  necessary  among  friends  and
  798.          gentlemen, but it's really the lawyers who  run  the  world  and
  799.          they say we gotta do this:
  800.  
  801.  
  802.               **  Steve's  Library  is  hereby  placed in the Public
  803.               Domain,  subject  to  the  limitations  specified   in
  804.               section VIII of this manual.
  805.               ** Steve's Library functions and all documentation are
  806.               copyright 1986 & 1987 by Steven E. Margison.
  807.               **  These functions and documentation are provided "as
  808.               is" without warranty of any kind, either expressed  or
  809.               implied,  including  but  not  limited  to the implied
  810.               warranties  of  merchantability  and  fitness  for   a
  811.               particular purpose.
  812.               ** The user of these functions and documentation agree
  813.               to  hold  the  author  and/or  distributor(s)  of this
  814.               material harmless  for  any  direct  or  consequential
  815.               damages  resulting  from  its  use.  In  other  words,
  816.               "you're on your own!"
  817.               ** IBM is  a  registered  trademark  of  International
  818.               Business Machines Corporation.
  819.               ** MS-DOS is a trademark of MicroSoft Corporation.
  820.               **  DATALIGHT  is a registered trademark of Datalight,
  821.               Inc.
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.                  Steve's C Library for Datalight         Page 13         
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.          
  860.  
  861.  
  862.          VIII. And Now A Word From The Author...
  863.                  I  hope  that  you  will  use  these functions in your C
  864.          programs. They simplify life  and  expedite  the  production  of
  865.          quality  programs.  Even  if  you do not decide to register, I'd
  866.          like to hear your comments on these functions and documentation.
  867.                  If you are not already a registered user of  one  of  my
  868.          programs,  a  business-sized  SASE  will  bring  you  a  list of
  869.          currently available programs from me.
  870.  
  871.                             --- Steven E. Margison ---
  872.                           --- CompuServe 74435,1042 ---
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.                  Steve's C Library for Datalight         Page 14         
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.          
  926.  
  927.  
  928.          =======================================================================
  929.                       SOFTWARE REGISTRATION FORM AND ORDER
  930.          =======================================================================
  931.          A separate form must be filled out for each product ordered or
  932.          registered.  This form may be photocopied, printed out, or
  933.          edited to include all information and re-printed.
  934.          
  935.          PRODUCT: --------- DATALIGHT C FUNCTIONS  -------------------------
  936.          
  937.          Check all that apply:                                    Amount:
  938.          
  939.          [ ]  Standard registration                  $10.00       $______
  940.          [ ]  Registration with Source code
  941.               and extra libraries                    $25.00       $______
  942.          
  943.          Source code is NOT SHAREWARE and is not to be transferred to other
  944.          users.  Only the DOC files, header files, and  S library are
  945.          released into shareware.
  946.          
  947.          
  948.          
  949.          
  950.          
  951.          
  952.                                           TOTAL ENCLOSED:         $______
  953.          If you already have these programs, where were they obtained?
  954.          [ ]CompuServe  [ ]Friend  [ ]Employer  [ ]BBS:__________________
  955.          Version_____ Serial No._________ 
  956.          
  957.          Payment is by check[ ] or money order[ ] (Sorry - no COD or charges)
  958.          
  959.          NAME _______________________________________________________
  960.          
  961.          COMPANY ____________________________________________________
  962.          
  963.          ADDRESS ____________________________________________________
  964.          
  965.          CITY _______________________________________________________
  966.          
  967.          STATE___________________________ ZIP _______________________
  968.          
  969.          =======================================================================
  970.          Send completed form and payment to:
  971.                              Steven E. Margison
  972.                               124 Sixth Street
  973.                           Downers Grove, IL, 60515
  974.          =======================================================================
  975.                        - do not write below this line -
  976.          
  977.          recd________   sent________ version_______ serial no.________
  978.  
  979.  
  980.  
  981.  
  982.                   Steve's C Library for Datalight         Page 15        
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.